/**
 * 
 */
package cl.easyRestaurant.controllers.pedidos;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import javax.servlet.http.HttpServletRequest;

import cl.easyRestaurant.business.pedidos.ICocinerosBusiness;
import cl.easyRestaurant.business.pedidos.IPedidosBusiness;
import cl.easyRestaurant.models.pedidos.CocineroModel;
import cl.easyRestaurant.models.pedidos.DetallePedidoModel;
import cl.easyRestaurant.models.pedidos.PedidoModel;

/**
 * @author XPMUser
 *
 */
public class CerrarPedidosController {
	
	@EJB
	private IPedidosBusiness pedidosBusiness;
	
	@EJB
	private ICocinerosBusiness cocinerosBusiness;
	
	private PedidoModel pedidoModel;
	
	private CocineroModel cocineroModel;

	private DataModel<PedidoModel> pedidosCerrables;
	
	private DataModel<DetallePedidoModel> detallePedidoCierre;
	
	@PostConstruct
	public void init() {
		
		HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
		
		String idCocinero = request.getParameter("IdCocinero");
		
		try {
			this.setCocineroModel(this.cocinerosBusiness.GetCocineroModel(idCocinero));
			
			this.setPedidosCerrables(this.pedidosBusiness.GetPedidosCerrablesCocinero(idCocinero));
		}
		catch(Exception e) {
			this.setCocineroModel(new CocineroModel());
		}
		
	}
	
	public String verDetallePedidoCierreAction() {
		
		try {
			this.setPedidoModel(this.pedidosCerrables.getRowData());
			
			this.setDetallePedidoCierre(this.pedidosBusiness.GetDetallePedido(this.getPedidoModel().getIdPedido()));
		}
		catch(Exception e) {
			this.setPedidoModel(new PedidoModel());
			
			this.setDetallePedidoCierre(new ListDataModel<DetallePedidoModel>());
		}
		
		return "CerrarPedidoCocinero.jsp";
	
	}
	
	public String cerrarPedidoCocineroAction() {
		
		HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
		
		String idPedido = request.getParameter("IdPedido");
		
		String idCocinero = request.getParameter("IdCocinero");
		
		try {
			this.setCocineroModel(this.cocinerosBusiness.GetCocineroModel(idCocinero));
			
			this.setPedidoModel(this.pedidosBusiness.GetPedidoModel(Integer.parseInt(idPedido)));
			
			this.pedidosBusiness.CerrarPedidoCocinero(this.getPedidoModel().getIdPedido());
			
			return "CierrePedidoExitoso.jsp";
		}
		catch(Exception e) {
			return "CierrePedidoNoExitoso.jsp";
		}
		
	}

	public DataModel<PedidoModel> getPedidosCerrables() {
		return pedidosCerrables;
	}

	public void setPedidosCerrables(DataModel<PedidoModel> pedidosCerrables) {
		this.pedidosCerrables = pedidosCerrables;
	}

	public PedidoModel getPedidoModel() {
		return pedidoModel;
	}

	public void setPedidoModel(PedidoModel pedidoModel) {
		this.pedidoModel = pedidoModel;
	}

	public DataModel<DetallePedidoModel> getDetallePedidoCierre() {
		return detallePedidoCierre;
	}

	public void setDetallePedidoCierre(
			DataModel<DetallePedidoModel> detallePedidoCierre) {
		this.detallePedidoCierre = detallePedidoCierre;
	}

	public CocineroModel getCocineroModel() {
		return cocineroModel;
	}

	public void setCocineroModel(CocineroModel cocineroModel) {
		this.cocineroModel = cocineroModel;
	}
	
}
